
function [tau_SB1Rot , xb2c_SB1Rot] = Bcr4bp_EMRot2SB1Rot3D(tau_EMRot , xb1c_EMRot , aux)
%
% BCR4BP坐标系转换，EMRot -> SB1Rot，3D
%
% s：太阳
% e：地球
% m：月球
% c：卫星
% b1：地-月质心
% b2：太阳-b1质心
% 
% 参考：
% 2024_Scheuerle, page160
%
% 时间：2024年06月03日
% 作者：张晨
% 单位：CSU
% 邮箱：chenzhang@csu.ac.cn
%%%%%%%%%%%%%%%%%%%%%%%

xb1c_EMRot = xb1c_EMRot(:);

% 基本参数
lstar_EM = aux.dim.EMRot_l; % EMRot距离单位
vstar_EM = aux.dim.EMRot_v; % EMRot速度单位
lstar_SB1 = aux.dim.SB1Rot_l; % SB1Rot距离单位
vstar_SB1 = aux.dim.SB1Rot_v; % SB1Rot速度单位
SB1Rot_mu = aux.SB1Rot.mu; % SB1Rot的引力常数
ws = aux.EMRot.ws; % EMRot太阳角速度

% 计算tau_SB1Rot
thetas = tau_EMRot * aux.EMRot.ws;
thetam = pi - thetas;
tau_SB1Rot = thetam / aux.SB1Rot.wm;

% ------------------------------------------------------------------------
% EMRot的太阳相位角thetas和太阳角速度dthetas
dthetas = ws;

% Equ 3.13
C = [-cos(thetas) , -sin(thetas) , 0;
    sin(thetas) , -cos(thetas) , 0;
    0 , 0 , 1];

% Equ 3.16
dC = dthetas * [sin(thetas) , -cos(thetas) , 0;
    cos(thetas) , sin(thetas) , 0;
    0 , 0 , 0];

% Equ 3.17 (EMRot -> SB1Rot)
TMtx = [lstar_EM / lstar_SB1 * C , zeros(3 , 3);
   vstar_EM / vstar_SB1 * dC , vstar_EM / vstar_SB1 * C];

% 绕b1旋转（Rotating and Scaling）
xb1c_SB1Rot = TMtx * xb1c_EMRot;

% b2-b1向量
xb2b1 = [1 - SB1Rot_mu ; 0 ; 0 ; 0 ; 0 ; 0];

% b2-c向量（Translation）
xb2c_SB1Rot = xb1c_SB1Rot + xb2b1;

end
